/********************************************************************
	created:	2012/4/8
	filename: 	TiledSolidGeometry.h
	author:		Mwolf
	
	purpose:	
*********************************************************************/
#ifndef TiledSolidGeometry_h__
#define TiledSolidGeometry_h__

#include "GameDef.h"
#include "BoundBox.h"
#include "GWColor.h"

typedef struct StageGeom STAGE_GEOM;

// -----------------------------------------------------------
// Stage geometry structure and methods
// -----------------------------------------------------------
typedef struct StageGeom
{
	BoundBox					bound;
	BoundBox					post_proj_bound;
	BoundBox					post_proj_bound_last_frame;					// For morph collision test
	int							tile_type_id;

	float						depth;

#if defined T3_DEBUG_DRAW_COLLISION
	bool						draw_collision;
#endif	// #if defined T3_DEBUG_DRAW_COLLISION

	STAGE_GEOM*					next;
} STAGE_GEOM;



STAGE_GEOM*		StageGeom_Create();
STAGE_GEOM*		StageGeom_GetFirst();
STAGE_GEOM*		StageGeom_GetNext( STAGE_GEOM* geom );
int				StageGeom_GetCount();

bool			StageGeom_Remove( STAGE_GEOM* to_remove );
void			StageGeom_RemoveAll();

void StageGeom_DebugRender( STAGE_GEOM* geom, GWColor color = GWColor::YELLOW );


#endif // TiledSolidGeometry_h__